#!/bin/bash
#
# 重启前端应用服务
# 作者: 知汛项目组
# 最后更新: 2024-11-07

# 颜色定义
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m'

# 默认配置
PROJECT_DIR="/home/water/source_code/zhixun-uni-app"
SERVICE_NAME="zhixun-app"

# 显示帮助
show_help() {
    cat << EOF
用法: $0 [选项]

重启前端应用服务

选项:
    --project-dir DIR  项目目录（默认: $PROJECT_DIR）
    --service NAME     服务名称（默认: $SERVICE_NAME）
    --help             显示此帮助信息

示例:
    # 重启服务
    bash $0

    # 指定项目目录
    bash $0 --project-dir /path/to/zhixun-uni-app
EOF
}

# 解析参数
while [[ $# -gt 0 ]]; do
    case $1 in
        --project-dir)
            PROJECT_DIR="$2"
            shift 2
            ;;
        --service)
            SERVICE_NAME="$2"
            shift 2
            ;;
        --help)
            show_help
            exit 0
            ;;
        *)
            echo -e "${RED}未知参数: $1${NC}"
            show_help
            exit 1
            ;;
    esac
done

echo "======================================"
echo "重启前端服务"
echo "======================================"
echo "服务名称: $SERVICE_NAME"
echo ""

# 检查项目目录
if [ ! -d "$PROJECT_DIR" ]; then
    echo -e "${RED}✗ 项目目录不存在: $PROJECT_DIR${NC}"
    exit 1
fi

cd "$PROJECT_DIR"

# 检查 docker-compose.yml
if [ ! -f "docker-compose.yml" ]; then
    echo -e "${RED}✗ docker-compose.yml 不存在${NC}"
    exit 1
fi

# 检查容器是否存在
echo -e "${YELLOW}[1/3] 检查容器状态...${NC}"

if docker ps -a | grep -q "$SERVICE_NAME"; then
    echo -e "${GREEN}✓ 容器存在${NC}"
else
    echo -e "${RED}✗ 容器不存在: $SERVICE_NAME${NC}"
    echo ""
    echo "提示: 使用部署脚本创建容器"
    echo "  bash scripts/frontend-https/deploy-frontend.sh"
    exit 1
fi

# 重启容器
echo ""
echo -e "${YELLOW}[2/3] 重启容器...${NC}"

docker-compose restart "$SERVICE_NAME"

if [ $? -ne 0 ]; then
    echo -e "${RED}✗ 重启失败${NC}"
    exit 1
fi

# 等待服务启动
echo -e "${YELLOW}等待服务启动...${NC}"
sleep 5

echo -e "${GREEN}✓ 容器已重启${NC}"

# 验证服务
echo ""
echo -e "${YELLOW}[3/3] 验证服务...${NC}"

# 检查容器状态
if docker ps | grep -q "$SERVICE_NAME"; then
    echo -e "${GREEN}✓ 容器运行正常${NC}"
else
    echo -e "${RED}✗ 容器未运行${NC}"
    echo ""
    echo "查看容器日志:"
    echo "  docker logs $SERVICE_NAME"
    exit 1
fi

# 显示容器信息
echo ""
echo "容器状态:"
docker ps | grep "$SERVICE_NAME"

echo ""
echo "容器日志（最后10行）:"
docker logs --tail 10 "$SERVICE_NAME"

echo ""
echo -e "${GREEN}✓ 重启完成${NC}"
echo ""
echo "查看完整日志:"
echo "  docker logs -f $SERVICE_NAME"

